package jschool.modelos;

import javax.swing.table.AbstractTableModel;

import jschool.entidades.Materia;
import jschool.manejadores.ManejadorDeMateria;

public class ModeloMateria extends AbstractTableModel {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private String[] encabezado = null;
	private static ModeloMateria instancia = null;
	private ManejadorDeMateria manejadorDeMateria = null;
	private Materia materia = null;

	public ModeloMateria() {
		encabezado = new String[] { "Id_Materia", "Nombre Materia", "Descripcion", "Tipo Aula",
				"Descripcion" };
		manejadorDeMateria = ManejadorDeMateria.getInstancia();
	}

	public static ModeloMateria getInstancia() {
		if (instancia == null) {
			instancia = new ModeloMateria();
		}
		return instancia;
	}

	public String getColumnName(int posicion) {
		return encabezado[posicion];
	}

	@Override
	public int getColumnCount() {

		return encabezado.length;
	}

	@Override
	public int getRowCount() {

		return manejadorDeMateria.getMaterias().size();
	}

	@Override
	public Object getValueAt(int fila, int col) {
		materia = manejadorDeMateria.getMaterias().get(fila);
		String retorno = "";
		switch (col) {
		case 0:
			retorno = String.valueOf(materia.getIdMateria());

			break;
		case 1:
			retorno = materia.getNombreMateria();
			break;
		case 2:
			retorno = materia.getDescripcion();
			break;

		case 3:
			retorno = materia.getTipoAula();
			break;
		}

		return retorno;
	}

	public void setValueAt(Object valor, int fila, int col) {
		materia = manejadorDeMateria.getMaterias().get(fila);
		switch (col) {

		case 1:
			materia.setNombreMateria((String) valor);
			break;

		case 2:
			materia.setDescripcion((String) valor);
			break;

		case 3:
			materia.setTipoAula((String) valor);
			break;

		}

	}
}
